home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 05 - 1989 / 05.05 May 89 / DA / UselessProc.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-03-22  |  1.4 KB  |  71 lines  |  [TEXT/KAHL]

  1. #include    <MacTypes.h>
  2. #include    <MemoryMgr.h>
  3. #include    <Quickdraw.h>
  4. #include    <WindowMgr.h>
  5. #include    <EventMgr.h>
  6. #include    <OSUtil.h>
  7. #include    <ResourceMgr.h>
  8. #include    <ToolboxUtil.h>
  9. #include    <DeviceMgr.h>
  10.  
  11. #define        NULL        (0L)
  12.  
  13. extern void            main ( void );
  14. extern WindowPtr    OpenWindow ( char*, short, short, short, short );
  15. extern void            DrawWindow ( WindowPtr, char * );
  16. extern void            KillWindow ( WindowPtr );
  17.  
  18. void
  19. main()
  20. {
  21.     asm {
  22.         movea.l        a0,a4            ; get pointer to our globals
  23.         move.w        (a7)+,d0        ; pop off routine selector
  24.         add.w        d0,d0            ; double the selector
  25.         add.w        d0,d0            ; double it again
  26.         lea            @JumpTable,a0    ; get address of jump table
  27.         jmp            0(a0,d0.w)        ; jump to our entry
  28. JumpTable:
  29.         jmp            OpenWindow
  30.         jmp            DrawWindow
  31.         jmp            KillWindow
  32.     }
  33. }
  34.  
  35. WindowPtr
  36. OpenWindow ( stTitle, left, top, right, bottom )
  37. char    stTitle[];
  38. short    left, top, right, bottom;
  39. {
  40.     Rect    rect;
  41.     
  42.     SetRect ( &rect, left, top, right, bottom );
  43.     
  44.     return NewWindow(NULL,&rect,stTitle,TRUE,documentProc,-1L,TRUE,0L);
  45. }
  46.  
  47. void
  48. DrawWindow ( pwind, stMessage )
  49. WindowPtr    pwind;
  50. char        stMessage[];
  51. {
  52.     short    h, v;
  53.  
  54.     SetPort ( pwind );
  55.     v = (pwind->portRect.top + pwind->portRect.bottom)/2;
  56.     h = (pwind->portRect.left + pwind->portRect.right)/2;
  57.     h -= StringWidth(stMessage)/2;
  58.     
  59.     MoveTo ( h, v );
  60.     DrawString ( stMessage );
  61. }
  62.  
  63. void
  64. KillWindow ( pwind )
  65. WindowPtr    pwind;
  66. {
  67.     DisposeWindow ( pwind );
  68. }
  69.  
  70.  
  71.